package com.blog.service;

import com.blog.VO.PostVO;
import com.blog.entity.Note;
import com.blog.entity.Page;
import com.blog.entity.Post;
import com.blog.entity.Saying;

public interface PostService {
	/**
	 * 根据帖子Id删除发布的帖子
	 * 传入参数：postId
	 * 返回值：-1/1   通过传入的id删除该帖子
	 * -1：删除失败
	 * 1：删除成功
	 * */
	int deletePostById(int postId);
	 
	 /**
	  * 添加帖子到审核表（发帖）
	  * 传入参数：postTitle postText postUserId postPlateId
	 * 返回值：-1/1 通过传入的添加帖子到审核表
	 * -1：添加失败
	 * 1：添加成功
	 * */
	 int insertById(Post post);
	
	 
	 /**
	  * 根据帖子Id修改帖子内容
	  * 传入参数：postId
	  * 返回值：-1/1   通过传入的id修改帖子信息
	  * -1：修改失败
	  * 1：修改成功
	  * */
	 int updatePostById(Post post);
	 
	 /**
	  * 查询所有帖子
	  * 传入参数：pageNum pageSize
	  * 返回值：Page<Post> 通过传入页数和条数返回查询第pageNum页的板块数据
	  * */
	 Page<Post> selectAllPost(int pageNum,int pageSize);
	 
	 Page<Post> selectAllCheckPost(int pageNum,int pageSize);
	 
	 /**
	  * 查询所有帖子
	  * 传入参数：pageNum pageSize
	  * 返回值：Page<Post> 通过传入页数和条数返回查询第pageNum页的板块数据
	  * */
	 Page<Post> selectPost(Post post,int pageNum,int pageSize);
	 
	 /**
	  * 根据PostId查询该帖子信息
	  * 传入参数：postId
	  * 返回值：Post 通过id查询帖子信息
	  * */
	 Post selectPostById(int postId);
	 
	 /**
	  * 根据PostId修改当前帖子
	  * 传入参数：postId
	  * 返回值：-1/1   通过传入的id修改该帖子
	  * -1：修改失败
	  * 1：修改成功
	  * */
	 int updatePostById(int PostUserId,int userId);

	 /**
	  * 根据PostId查询收藏数量
	  * 传入参数：postId
	  * 返回值：数量count(1)  根据postId查询收藏的总数量
	  * */
	 int selectPostStar(int postId);
	 
	 /**
	  * 根据PostId查询点赞数量 
	  * 传入参数：postId
	  * 返回值：数量count(1)  根据postId查询点赞的总数量
	  * */
	 int selectPostLike(int postId);
	 
	 /**
	  *查询点赞前num的帖子
	  *	传入参数：postId
	  * 返回值：数量count(1)  根据postId查询点赞的总数量
	  * */
	 Page<PostVO> selectPostByNum(int num);
	 
	 /**
	  * 查询该用户的所有帖子
	  * 传入参数：userId pageNum pageSize
	  * 返回值：Page<Post>  查询userId发布的所有帖子
	  * */
	 Page<Post> selectAllPostById(int userId,int pageNum,int pageSize);
	 
	 /**
	  *随机查询条名言
	  *传入参数：
	  * 返回值：Saying  随机查询一条名言
	  * */
	 Saying selectSaying();
	 
	 /**
	  *查询最新的一条通知
	  *传入参数：
	  * 返回值：Saying  查询最新的一条通知
	  * */
	 Note selectNote();

	int deletePost(int postId,int userId);
}
